In the manufacture of integrated circuit chips, photolithography is used to form desired structures in chip materials (e.g., wafers). Masks are used to protect certain portions of the wafer, thus avoiding removal of defined portions of the wafer during the photolithography process. In this way, images and patterns are transferred to integrated circuit wafers based on the properties of the mask and the mask level designs which define the mask. The particular mask level designs in use, however, must be tested for their intended output in order to prevent bad mask builds. The success of bug-free mask builds are accordingly based on the testcases that verify the functionality and accuracy of the mask level build design for each mask level.
Known solutions exist to generate functional testcases to test mask level designs. One solution involves drawing a functional testcase specific to each mask level by hand. The drawback is that this manual drawing is time consuming, tedious, and error prone, and a manual testcase might not reflect the dynamically changing mask build recipes during development. Also, computerized tools exist which can generate testcases, but these tools require the mask build code developers to perform high level programming (such as with the C programming language or scripting languages like Tcl/Perl) to use the tools. This is a drawback for a typical Litho person who is not a programmer but is required to learn programming just to perform testcase generation to test a mask build recipe. Thus, these programming tools incur difficulty in creating the testcases for each mask level, and increase the software development TAT (turn-around-time) significantly.
The testing phase of integrated circuit chip design which includes designing these mask build algorithm testcases is as significant as the development phase in any software development cycle. The testing phase could, in fact, span more time than a development cycle due to the intensive stress testing of code functionality and error exceptions simulated in several possible use cases. Using the known available solutions presents not only difficulty in learning the tools but also difficulty in creating the various use cases to test the mask build algorithms.
What is needed is a simple way to create testcases for mask build algorithms by a Litho person using the same mask level knowledge that he or she already possesses.